#import "AddressBook.h"
#import "Foo.h"

int main (int argc, char *argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    NSData            *dataArea;
    NSKeyedUnarchiver *unarchiver;
    Foo               *myFoo1;
    AddressBook       *myBook;
    // Wczytanie archiwum i poczenie z nim
    // obiektu klasy NSKeyedUnarchiver

    dataArea = [NSData dataWithContentsOfFile: @"myArchive"];

    if (! dataArea) {
        NSLog (@"Nie mona wczyta pliku archiwum!");
        return 1;
    }

    unarchiver = [[NSKeyedUnarchiver alloc]
                initForReadingWithData: dataArea];

    // Dekodowanie wczeniej zarchiwizowanych obiektw
    myBook = [unarchiver decodeObjectF orKey: @"myaddrbook"];
    myFoo1 = [unarchiver decodeObjectForKey: @"myfoo1"];

    [unarchiver finishDecoding];

    [unarchiver release];

    // Sprawdzenie, czy operacja przywracania zakoczya si pomylnie
    [myBook list];
    NSLog (@"%@\n%i\n%g", [myFoo1 strVal],
            [myFoo1 intVal], [myFoo1 floatVal]);

    [pool release];
    return 0;
}